#ifndef SILICOOLCAMERAFACTORY_H
#define SILICOOLCAMERAFACTORY_H

#include <QObject>
#include "silicoolcamera.h"
#include <Logger.h>
class SilicoolcameraFactory
{
private:
    SilicoolcameraFactory() {}
    SilicoolcameraFactory(const SilicoolcameraFactory&) {}
public:
    enum CameraType {
        BASLER,
        HIK
    };
    static SilicoolcameraFactory & instance() {
        static SilicoolcameraFactory* _instance = Q_NULLPTR;
        if (_instance == Q_NULLPTR) {
            _instance = new SilicoolcameraFactory();
        }
        return *_instance;
    }
public:
    SilicoolCamera* createSilicoolcamera(CameraType type, QString cameraName);
    void stopAllSilicoolCamera();
    QImage getImage(QString cameraName, bool &ret);
private:
    std::vector<SilicoolCamera*> silicoolCameraList;
};

#endif // SILICOOLCAMERAFACTORY_H
